package com.googlecode.hmvc4gwt.example.hmvcblog.service.services.blog.entry;

import java.util.List;

import com.googlecode.hmvc4gwt.example.hmvcblog.server.repository.blog.exceptions.BlogNotFoundException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.BlogIdDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.BlogEntryDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.BlogEntryEditDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.BlogEntryNewDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.BlogEntryRemoveDTO;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.exceptions.BlogEntryNotFoundException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.exceptions.BlogEntryTextEmptyException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.entry.exceptions.BlogEntryTitleEmptyException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.blog.exceptions.NotBlogOwnerException;
import com.googlecode.hmvc4gwt.example.hmvcblog.service.dto.user.exception.NotLoggedInException;

public interface IBlogEntryService {

	public List<BlogEntryDTO> getListBlogEntries(BlogIdDTO blogIdDTO)  throws BlogNotFoundException;
	
	public void addBlogEntry(BlogEntryNewDTO blogEntryNewDTO) throws NotLoggedInException, NotBlogOwnerException, BlogNotFoundException, BlogEntryTitleEmptyException, BlogEntryTextEmptyException;
	
	public void removeBlogEntry(BlogEntryRemoveDTO blogEntryRemoveDTO) throws NotLoggedInException, NotBlogOwnerException, BlogEntryNotFoundException;
	
	public void editBlogEntry(BlogEntryEditDTO blogEntryEditDTO) throws NotLoggedInException, NotBlogOwnerException, BlogEntryTitleEmptyException, BlogEntryTextEmptyException, BlogEntryNotFoundException;
}
